package com.weixu.fileconver.service;

import com.weixu.fileconver.entity.ConvertResult;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.InputStream;

/**
 * 文件转换服务接口
 * @Author weixu
 * @Date 2025/8/29 上午10:02
 */
public interface FileConvertService {
    /**
     * 将文件转换为指定格式并返回文件流
     * @param file 上传的文件
     * @param targetType 目标格式（如：pdf, doc, docx, xls, xlsx, ppt, pptx等）
     * @return 转换后的文件输入流
     * @throws Exception 转换异常
     */
    InputStream convertToFormat(MultipartFile file, String targetType) throws Exception;
    
    /**
     * 将文件转换为指定格式并返回转换结果信息
     * @param file 上传的文件
     * @param targetType 目标格式
     * @return 包含文件流和文件信息的结果对象
     * @throws Exception 转换异常
     */
    ConvertResult convertToFormatWithInfo(MultipartFile file, String targetType) throws Exception;
    
    /**
     * 检查文件格式是否支持转换
     * @param fileName 文件名
     * @return 是否支持
     */
    boolean isSupportedFormat(String fileName);
    
    /**
     * 检查LibreOffice是否可用
     * @return 是否可用
     */
    boolean isLibreOfficeAvailable();
}
